export default {
	//代码分析:  形参obj 代表被拷贝目标,  调用函数 传入拷贝目标,
	//      通过Array.isArray(obj)判断obj的类型是否为数组
	//      通过 for in 遍历拷贝目标,
	//      使用 typeof 判断其每一个元素或者属性, 是否为obj类型(typeof  Array/Object  返回值皆为object)
	//          若该属性/元素, 部位null 并且 typeof返回值为object,  则代表其为复杂数据类型, 递归调用 deepCopy(obj[key]),继续拷贝其内部
	//          否则: 代表该元素非 数组  非对象, 为基本数据类型/函数 等  , 直接赋值拷贝即可
	//      最后返回拷贝完成的result ,函数执行完毕
	/**
	 * 深拷贝
	 * @param obj
	 * @returns {*[]}
	 */
	deepCopy(obj) {
		let result = Array.isArray(obj) ? [] : {};
		for (let key in obj) {
			if (typeof obj[key] === 'object' && obj[key] !== null) {
				result[key] = deepCopy(obj[key]); //递归复制
			} else {
				result[key] = obj[key];
			}
		}
		return result;
	}
}
